package main.java.ensao.cryptography.dsamodule;

//Updates: 2004.03.23, 2003.06.13

  
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;


/**
* Signe un texte puis vérifie la signature. Les constantes CHEAT_TEXT et
* CHEAT_SIGNATURE permettent de modifier respectivement le texte et la 
* signature (après l'opération de signature) afin de s'assurer que toute
* tentative de fraude soit détectée.
* Note: Le message peut-être de longueur quelconque; il n'y a pas besoin de 
* faire un hash avant d'appliquer le processus de signature.
*/
public class DSAKeyGenerator {
final static int KEY_SIZE = 1024;  // [512..1024]
final static boolean CHEAT_TEXT = false;
final static boolean CHEAT_SIGNATURE = false;
//final static String message = "Transfer $2000 to account S314542.0";

public static KeyPair getKeyPair(String message){
	 byte[] text = message.getBytes();
	   System.out.println("\nGenerating a pair of DSA keys...");
	   KeyPairGenerator keyPairGen=null;
	try {
		keyPairGen = KeyPairGenerator.getInstance("DSA");
	} catch (NoSuchAlgorithmException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	   keyPairGen.initialize(KEY_SIZE, new SecureRandom());
	   KeyPair kp = keyPairGen.generateKeyPair();   
	   return kp;
}


}
